﻿/*
7-15 计算圆周率 (15 分)
根据下面关系式，求圆周率的值，直到最后一项的值小于给定阈值。


输入格式：
输入在一行中给出小于1的阈值。

输出格式：
在一行中输出满足阈值条件的近似圆周率，输出到小数点后6位。

输入样例：
0.01
输出样例：
3.132157
*/

#include <stdio.h>
#include <stdlib.h>

double calc_pi(const double eps) {
	double f0 = 0;
	double fd = 1;
	double numerator=1;
	double denominator=1;
	double p0 = 1;
	double a = 0;
	while(1) {
		++f0;
		fd += 2;
		numerator *= f0;
		denominator *= fd;
		a = numerator / denominator;
		p0 += a;
		if (a < eps)
			break;
	}
	return p0 * 2;
}

int main() {
	freopen("D:/Develop/GitRepos/MOOC/浙江大学/数据结构/201906/zju_C_Basic/data/7.15.txt", "r", stdin);
	double eps;
	scanf("%lf", &eps);
	printf("%.6f", calc_pi(eps));

	return 0;
}